package com.javalab._6feature._5annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 注解@interface 是放在Java源码的类、方法、字段、参数前的一种特殊“注释”
 * 元注解：修饰注解的注解，有4个
 * Target 描述的注解可以用在什么地方:构造器CONSTRUCTOR,属性FIELD,局部变量LOCAL_VARIABLE,方法METHOD,包PACKAGE,方法参数PARAMETER,以及类、接口、注解、枚举TYPE
 * Retention 在那个生命周期生效:源文件保留SOURCE,class文件中有效CLASS,运行时有效RUNTIME
 * Documented 是一个标记注解,在生成文档的时候作为说明
 * Inherited 如果一个使用了@Inherited修饰的annotation类型被用于一个class，则这个Annotation将被用于该class的子类。
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MyAnnotation2 {
    String identifier() default "";
}
